package com.easondongh.system.service;

import com.easondongh.system.domain.SysRole;
import com.baomidou.mybatisplus.extension.service.IService;
import com.easondongh.common.vo.BasePageQueryVo;
import com.easondongh.common.vo.PageResult;
import com.easondongh.system.vo.RoleDispatchVo;
import com.easondongh.system.vo.RoleQueryVo;

import java.util.List;

/**
 * @author EasonDongH
 * @date 2020/5/11 9:24
 */
public interface SysRoleService extends IService<SysRole>{

    PageResult<SysRole> getByPage(BasePageQueryVo<RoleQueryVo> queryVo);

    /**
     * 为角色分配的可见菜单、可用权限
     * 先删已有的，再添加新的
     * @param dispatchVo
     */
    void dispatchMenuAndPermission(RoleDispatchVo dispatchVo);

    RoleDispatchVo getMenuAndPermission(Integer rid);

    boolean removeById(Integer id);

    /**
     * 加载所有启用中的角色
     * @return
     */
    List<SysRole> loadEnableRole();

    /**
     * 根据用户id获取所拥有的角色名
     * @param id
     * @return
     */
    List<String> getRoleNamesByUid(Integer id);
}
